const express = require('express')
const router = express.Router()
const articleValidator = require('../../validator/article')
const articleCtrl = require('../../controller/article')

// 获取分页获取文章列表，（按创建时间排序）
router.get('/', articleCtrl.getArticles)

// 创建文章
router.post('/create', articleValidator.createArticle, articleCtrl.createArticle)

router.get('/search', articleCtrl.getSearchResult)

// 获取所有文章的浏览量
router.get('/allRecord', articleCtrl.getAllRecord)

// 获取文章浏览量表格
router.get('/viewsEchart', articleCtrl.getViewsEchart)

router.post('/views', articleCtrl.createViewsEchart)

// 获取所有文章数
router.get('/count', articleCtrl.getArticleCount)

// 获取所有文章评论数量
router.get('/commentCount', articleCtrl.getCommentCount)

router.get('/option', articleCtrl.getSearchOption)

router.get('/month', articleCtrl.getMonth)

// 获取热门文章
// 注意，获取热门文章必须写在获取单个文章之前，不然请求 /article/hotArticles 会先名字 下面的路由就出错了。
router.get('/hotArticles', articleCtrl.getHotArticles)

// 注意这个路由必须写在后面
// 获取单个文章
router.get('/:articleId', articleCtrl.getArticle)

// 获取相关阅读
router.get('/:articleId/relation', articleCtrl.getArticleRelation)

// 更新文章
router.put('/:articleId', articleCtrl.updateArticle)

// 计算单个文章的浏览量
router.post('/record/:articleId', articleCtrl.sendRecord)

// 删除文章
router.delete('/:articleId', articleCtrl.deleteArticle)

// 添加文章评论
router.post('/:articleId/comments', articleCtrl.createArticleComment)

// 获取文章评论列表
router.get('/:articleId/comments', articleCtrl.getArticleComments)

// 删除文章评论
router.delete('/:articleId/comments/:id', articleCtrl.deleteArticleComment)

module.exports = router
